code: def write(self, table: TableCatalogEntry, rows: Batch):
      try:
          dir_path = Path(table.file_url)
          copied_files = []
          for media_file_path in rows.file_paths():
              media_file = Path(media_file_path)
              dst_file_name = self._xform_file_url_to_file_name(
                  media_file
              )
              dst_path = dir_path / dst_file_name
              if dst_path.exists():
                  raise FileExistsError(
                      f"Duplicate File: {media_file} already exists in the table {table.name}"
                  )
              src_path = Path.cwd() / media_file
              os.symlink(src_path, dst_path)
              copied_files.append(dst_path)
          # assuming sql write is an atomic operation
          self._rdb_handler.write(
              self._get_metadata_table(table),
              Batch(
                  pd.DataFrame({"file_url": list(rows.file_paths())})
              ),
          )
  
      except Exception as e:
          # delete the copied_files
          for file in copied_files:
              logger.info(f"Rollback file {file}")
              file.unlink()
          logger.exception(str(e))
          raise RuntimeError(str(e))
      else:
          return True
  
imports: import os
  import re
  import shutil
  from pathlib import Path
  import pandas
  from evadb.catalog.models.table_catalog import TableCatalogEntry
  from evadb.database import EvaDBDatabase
  from evadb.models.storage.batch import Batch
  from evadb.parser.table_ref import TableInfo
  from evadb.storage.abstract_storage_engine import AbstractStorageEngine
  from evadb.storage.sqlite_storage_engine import SQLStorageEngine
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 8 for calling the AbstractMediaStorageEngine obj's underlying member method code with example usage: obj.write(table, rows) and returns: True