code: private boolean visitColumnsAndColumnFacets(VisitContext context,
                                                  VisitCallback callback,
                                                  boolean visitRows) {
          if (visitRows) {
              setRowIndex(-1);
          }
          if (getChildCount() > 0) {
              for (UIComponent column : getChildren()) {
                  if (column instanceof UIColumn) {
                      VisitResult result = context.invokeVisitCallback(column, callback); // visit the column directly
                      if (result == VisitResult.COMPLETE) {
                          return true;
                      }
                      if (column.getFacetCount() > 0) {
                          for (UIComponent columnFacet : column.getFacets().values()) {
                              if (columnFacet.visitTree(context, callback)) {
                                  return true;
                              }
                          }
                      }
                  }
              }
          }
  
          return false;
      }
docs: Visit each UIColumn and any facets it may have defined exactly once