code: def update_row(self, key, value):
          
          if isinstance(key, int):
              row = self._validate_row(value, init_table_if_required=False)
              row_obj = RowData(self, row)
              self._table[key] = row_obj
          elif isinstance(key, slice):
              row_obj_list = []
              for row in value:
                  row_ = self._validate_row(row, init_table_if_required=True)
                  row_obj_list.append(RowData(self, row_))
              self._table[key] = row_obj_list
          else:
              raise TypeError("key must be an integer or a slice object")
docs: Update a column named `header` in the table.
  
          If length of column is smaller than number of rows, lets say
          `k`, only the first `k` values in the column is updated.
  
          Parameters
          ----------
          key : int or slice
              index of the row, or a slice object.
  
          value : iterable
              If an index is specified, `value` should be an iterable
              of appropriate length. Instead if a slice object is
              passed as key, value should be an iterable of rows.
  
          Raises
          ------
          IndexError:
              If index specified is out of range.
  
          TypeError:
              If `value` is of incorrect type.
  
          ValueError:
              If length of row does not matches number of columns.