code: def _validate_row_label(dataset, label=None, default_label="__id"):
      """
      Validate a row label column. If the row label is not specified, a column is
      created with row numbers, named with the string in the `default_label`
      parameter.
  
      Parameters
      ----------
      dataset : SFrame
          Input dataset.
  
      label : str, optional
          Name of the column containing row labels.
  
      default_label : str, optional
          The default column name if `label` is not specified. A column with row
          numbers is added to the output SFrame in this case.
  
      Returns
      -------
      dataset : SFrame
          The input dataset, but with an additional row label column, *if* there
          was no input label.
  
      label : str
          The final label column name.
      """
      ## If no label is provided, set it to be a default and add a row number to
      #  dataset. Check that this new name does not conflict with an existing
      #  name.
      if not label:
          ## Try a bunch of variations of the default label to find one that's not
          #  already a column name.
          label_name_base = default_label
          label = default_label
          i = 1
  
          while label in dataset.column_names():
              label = label_name_base + ".{}".format(i)
              i += 1
  
          dataset = dataset.add_row_number(column_name=label)
  
      ## Validate the label name and types.
      if not isinstance(label, str):
          raise TypeError(
              "The row label column name '{}' must be a string.".format(
                  label
              )
          )
  
      if not label in dataset.column_names():
          raise ToolkitError(
              "Row label column '{}' not found in the dataset.".format(
                  label
              )
          )
  
      if not dataset[label].dtype in (str, int):
          raise TypeError("Row labels must be integers or strings.")
  
      ## Return the modified dataset and label
      return dataset, label
  
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import absolute_import
  from ..data_structures.sframe import SArray
  from ..data_structures.sframe import SFrame
  from ..data_structures.sgraph import SGraph
  from ..data_structures.sgraph import Vertex
  from ..data_structures.sgraph import Edge
  from .._cython.cy_sarray import UnitySArrayProxy
  from .._cython.cy_sframe import UnitySFrameProxy
  from .._cython.cy_graph import UnityGraphProxy
  from ..toolkits._main import ToolkitError
  import json
  import six
label_desc: Use image node_id 27 for calling a global function with example usage: _validate_row_label(dataset, label, default_label) and returns: dataset,  label