docs: def append(self, symbol, item, upsert=False, metadata=None, audit=None, **kwargs):
          """
          Appends data from item to symbol's data in the database.
  
          Is not idempotent
  
          Parameters
          ----------
          symbol: str
              the symbol for the given item in the DB
          item: DataFrame or Series
              the data to append
          upsert:
              write data if symbol does not exist
          metadata: ?
              optional per symbol metadata
          audit: dict
              optional audit information
          kwargs:
              passed to write if upsert is true and symbol does not exist
          """
          sym = self._get_symbol_info(symbol)
          if not sym:
              if upsert:
                  return self.write(symbol, item, metadata=metadata, audit=audit, **kwargs)
              else:
                  raise NoDataFoundException("Symbol does not exist.")
          if audit is not None:
              audit['symbol'] = symbol
              audit['action'] = 'append'
          self.__update(sym, item, metadata=metadata, combine_method=SER_MAP[sym[SERIALIZER]].combine, audit=audit)