docs: def write_history(self, collection):
          """
          Manually overwrite entire metadata history for symbols in `collection`
  
          Parameters
          ----------
          collection : `list of pandas.DataFrame`
              with symbol names as headers and timestamps as indices
              (the same format as output of read_history)
              Example:
                  [pandas.DataFrame({'symbol': [{}]}, [datetime.datetime.utcnow()])]
          """
          documents = []
          for dataframe in collection:
              if len(dataframe.columns) != 1:
                  raise ValueError('More than one symbol found in a DataFrame')
              symbol = dataframe.columns[0]
              times = dataframe.index
              entries = dataframe[symbol].values
              if self.has_symbol(symbol):
                  self.purge(symbol)
              doc = {'symbol': symbol, 'metadata': entries[0], 'start_time': times[0]}
              for metadata, start_time in zip(entries[1:], times[1:]):
                  if metadata == doc['metadata']:
                      continue
                  doc['end_time'] = start_time
                  documents.append(doc)
                  doc = {'symbol': symbol, 'metadata': metadata, 'start_time': start_time}
              documents.append(doc)
  
          self.insert_many(documents)