Откатывает ли изменения в БД контекстный менеджер?

В примере sample2 есть откат если что не так, а будет ли он в sample1?

APP = Flask(__name__)
db = SQLAlchemy(APP, engine_options={"pool_pre_ping": True})


class Users(db.Model):
    __tablename__ = "users"
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), unique=False, nullable=True)

db.create_all()


@APP.route('/sample1', methods=['GET'])
def sample1():
    with db.session() as db_session:
        db_session.add(Users(name='John'))
        db_session.flush()
        db_session.add(Users(name='Ilon'))
        db_session.commit()


@APP.route('/sample2', methods=['GET'])
def sample2():
    try:
        db.session.add(Users(name='John'))
        db.session.flush()
        db.session.add(Users(name='Ilon'))
        db.session.commit()
    except:
        db.session.rollback()
    finally:
        db.session.close()

Ответы (0 шт):