code: private void processColumnFacets(FacesContext context, int processAction)
      {
          for (int i = 0, childCount = getChildCount(); i < childCount; i++)
          {
              UIComponent child = getChildren().get(i);
              if (child instanceof UIColumn)
              {
                  if (! _ComponentUtils.isRendered(context, child))
                  {
                      // Column is not visible
                      continue;
                  }
                  
                  if (child.getFacetCount() > 0)
                  {
                      for (UIComponent facet : child.getFacets().values())
                      {
                          process(context, facet, processAction);
                      }
                  }
              }
          }
      }
docs: Invoke the specified phase on all facets of all UIColumn children of this component. Note that no methods are
  called on the UIColumn child objects themselves.
  
  @param context
  is the current faces context.
  @param processAction
  specifies a JSF phase: decode, validate or update.