docstr: Insert a new table entry into table catalog.
  Arguments:
      name (str): name of the table
      file_url (str): file path of the table.
      table_type (TableType): type of data in the table
  Returns:
      TableCatalogEntry
docstr_tok: ["Insert","a","new","table","entry","into","table","catalog",".","Arguments",":","name","(","str",")",":","name","of","the","table","file_url","(","str",")",":","file","path","of","the","table",".","table_type","(","TableType",")",":","type","of","data","in","the","table","Returns",":","TableCatalogEntry"]
code: def insert_entry(
      self,
      name: str,
      file_url: str,
      identifier_column: str,
      table_type: TableType,
      column_list,
  ) -> TableCatalogEntry:
      """Insert a new table entry into table catalog.
      Arguments:
          name (str): name of the table
          file_url (str): file path of the table.
          table_type (TableType): type of data in the table
      Returns:
          TableCatalogEntry
      """
      try:
          table_catalog_obj = self.model(
              name=name,
              file_url=file_url,
              identifier_column=identifier_column,
              table_type=table_type,
          )
          table_catalog_obj = table_catalog_obj.save(self.session)
  
          # populate the table_id for all the columns
          for column in column_list:
              column.table_id = table_catalog_obj._row_id
          column_list = self._column_service.create_entries(column_list)
  
          # atomic operation for adding table and its corresponding columns.
          try:
              self.session.add_all(column_list)
              self.session.commit()
          except Exception as e:
              self.session.rollback()
              self.session.delete(table_catalog_obj)
              self.session.commit()
              logger.exception(
                  f"Failed to insert entry into table catalog with exception {str(e)}"
              )
              raise CatalogError(e)
      except Exception as e:
          logger.exception(
              f"Failed to insert entry into table catalog with exception {str(e)}"
          )
          raise CatalogError(e)
      else:
          return table_catalog_obj.as_dataclass()
  
file_path: evadb/evadb/catalog/services/table_catalog_service.py
imports: from sqlalchemy.orm import Session
  from sqlalchemy.sql.expression import select
  from evadb.catalog.catalog_type import TableType
  from evadb.catalog.models.table_catalog import TableCatalog, TableCatalogEntry
  from evadb.catalog.services.base_service import BaseService
  from evadb.catalog.services.column_catalog_service import ColumnCatalogService
  from evadb.utils.errors import CatalogError
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 2 for calling the TableCatalogService obj's underlying member method code with example usage: obj.insert_entry(name, file_url, identifier_column, table_type, column_list) and returns: table_catalog_obj