class_docstr: This overrides the default `_declarative_constructor` constructor.
  
  It skips the attributes that are not present for the model, thus if a
  dict is passed with some unknown attributes for the model on creation,
  it won't complain for `unknown field`s.
  Declares and int `_row_id` field for all tables
docstr: Delete and commit
docstr_tok: ["Delete","and","commit"]
code: def delete(self, db_session):
      """Delete and commit"""
      try:
          db_session.delete(self)
          self._commit(db_session)
      except Exception as e:
          db_session.rollback()
          logger.error(f"Database delete failed : {str(e)}")
          raise e
  
file_path: evadb/evadb/catalog/models/base_model.py
imports: from sqlalchemy import Column, Integer
  from sqlalchemy.exc import SQLAlchemyError
  from sqlalchemy.ext.declarative import declarative_base
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 4 for calling the CustomModel obj's underlying member method code with example usage: obj.delete(db_session) without return types