The actual answer of this question is
The h:panelGrid tag is used to represent an entire table. The h:panelGroup tag is used to represent rows in a table.
The columns attribute defines how to group the data in the table and therefore is required if you want your table to have more than one column. The h:panelGrid tag also has a set of optional attributes that specify CSS classes:columnClasses, footerClass, headerClass, panelClass, and rowClasses.