def METHOD_NAME(self, token):
    # This is actually gross and I wonder if there's a better way to do it.
    #
    # The primary difficulty seems to be passing down alignment options to
    # reach individual cells.
    template = '<table>\n{inner}</table>'
    if hasattr(token, 'header'):
        head_template = '<thead>\n{inner}</thead>\n'
        head_inner = self.render_table_row(token.header, is_header=True)
        head_rendered = head_template.format(inner=head_inner)
    else:
        head_rendered = ''
    body_template = '<tbody>\n{inner}</tbody>\n'
    body_inner = self.render_inner(token)
    body_rendered = body_template.format(inner=body_inner)
    return template.format(inner=head_rendered + body_rendered)