docs: def update_cells(self, cell_list, value_input_option='RAW'):
          """Updates many cells at once.
  
          :param cell_list: List of :class:`Cell` objects to update.
          :param value_input_option: (optional) Determines how input data should
                                      be interpreted. See `ValueInputOption`_ in
                                      the Sheets API.
          :type value_input_option: str
  
          .. _ValueInputOption: https://developers.google.com/sheets/api/reference/rest/v4/ValueInputOption
  
          Example::
  
              # Select a range
              cell_list = worksheet.range('A1:C7')
  
              for cell in cell_list:
                  cell.value = 'O_o'
  
              # Update in batch
              worksheet.update_cells(cell_list)
  
          """
  
          values_rect = cell_list_to_rect(cell_list)
  
          start = rowcol_to_a1(min(c.row for c in cell_list), min(c.col for c in cell_list))
          end = rowcol_to_a1(max(c.row for c in cell_list), max(c.col for c in cell_list))
  
          range_label = '%s!%s:%s' % (self.title, start, end)
  
          data = self.spreadsheet.values_update(
              range_label,
              params={
                  'valueInputOption': value_input_option
              },
              body={
                  'values': values_rect
              }
          )
  
          return data