class_docstr: Class used to write data to an assets db.
  
  Parameters
  ----------
  engine : Engine or str
      An SQLAlchemy engine or path to a SQL database.
class_docstr_tok: ["Class","used","to","write","data","to","an","assets","db",".","Parameters","--","--","--","--","--","engine",":","Engine","or","str","An","SQLAlchemy","engine","or","path","to","a","SQL","database","."]
code: def _real_write(
      self,
      equities,
      equity_symbol_mappings,
      equity_supplementary_mappings,
      futures,
      exchanges,
      root_symbols,
      chunk_size,
  ):
      with self.engine.begin() as conn:
          # Create SQL tables if they do not exist.
          self.init_db(conn)
  
          if exchanges is not None:
              self._write_df_to_table(
                  exchanges_table,
                  exchanges,
                  conn,
                  chunk_size,
              )
  
          if root_symbols is not None:
              self._write_df_to_table(
                  futures_root_symbols,
                  root_symbols,
                  conn,
                  chunk_size,
              )
  
          if equity_supplementary_mappings is not None:
              self._write_df_to_table(
                  equity_supplementary_mappings_table,
                  equity_supplementary_mappings,
                  conn,
                  chunk_size,
              )
  
          if futures is not None:
              self._write_assets(
                  "future",
                  futures,
                  conn,
                  chunk_size,
              )
  
          if equities is not None:
              self._write_assets(
                  "equity",
                  equities,
                  conn,
                  chunk_size,
                  mapping_data=equity_symbol_mappings,
              )
  
imports: from collections import namedtuple
  import re
  import numpy
  import pandas
  import sqlalchemy
  from toolz import first
  from zipline.errors import AssetDBVersionError
  from zipline.assets.asset_db_schema import ASSET_DB_VERSION, asset_db_table_names, asset_router, equities, equity_symbol_mappings, equity_supplementary_mappings, futures_contracts, exchanges, futures_root_symbols, metadata, version_info
  from zipline.utils.compat import ExitStack
  from zipline.utils.preprocess import preprocess
  from zipline.utils.range import from_tuple, intersecting_ranges
  from zipline.utils.sqlite_utils import coerce_string_to_eng
label_desc: Use image node_id 2 for calling the AssetDBWriter obj's underlying member method code with example usage: obj._real_write(equities, equity_symbol_mappings, equity_supplementary_mappings, futures, exchanges, root_symbols, chunk_size) without return types