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: Try to commit. If an error is raised, the session is rollbacked.
docstr_tok: ["Try","to","commit",".","If","an","error","is","raised",",","the","session","is","rollbacked","."]
code: def _commit(self, db_session):
      """Try to commit. If an error is raised, the session is rollbacked."""
      try:
          db_session.commit()
      except SQLAlchemyError as e:
          db_session.rollback()
          logger.error(f"Database commit 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 5 for calling the CustomModel obj's underlying member method code with example usage: obj._commit(db_session) without return types