Lesson 9 — Writes and transactions

Continue after lesson 7 (optional lesson 8 is not required), or start fresh:
    exec(open("start-here.py").read())
    exec(open("console.py").read())
    exec(open("checks.py").read())
Requires Python 3.11+ and asqueel[migration]==0.6.0.
The bootstrap rebuilds lessons 1–6; all four fictional CSV files are included.

There are no custom Python hooks in this lesson. Supply quantity, price and total.
Table update receives a full physical record and an explicit old_record.
Query update merges changed fields and returns primary keys; query delete
returns deleted records. Every demonstration selection filters one known key.
Commit keeps changes in this connection, without creating a database file.
Rollback undoes all work since the last commit, not only the last statement.
The final committed delete removes the demo row and leaves all 36 original rows.
Lesson 10 adds Python calculations and validation to this same starting data.
