Opening drill
Where should a SQLAlchemy transaction begin and end, and when are savepoints useful? | Aporeon