code: protected void beforeBody(FacesContext facesContext, UIData uiData) throws IOException
      {
          ResponseWriter writer = facesContext.getResponseWriter();
  
          renderCaptionFacet(facesContext, writer, uiData);
          renderColgroupsFacet(facesContext, writer, uiData);
          renderFacet(facesContext, writer, uiData, true);
          renderFacet(facesContext, writer, uiData, false);
      }
docs: Perform any operations necessary after TABLE start tag is output
  but before the TBODY start tag.
  <p>
  This method generates the THEAD/TFOOT sections of a table if there
  are any header or footer facets defined on the table or on any child
  UIColumn component.
  
  @param facesContext the <code>FacesContext</code>.
  @param uiData the <code>UIData</code> being rendered.