@contextmanager def session_scope(session): """Provide a transactional scope around a series of operations.""" try: yield session session.commit() except Exception as e: session.rollback() logger.error(f"Session rollback due to: {str(e)}") raise finally: session.close()