Сохранить изменение остатка и запись журнала вместе

Ответы получены от MySQL через X Protocol. Созданные программой таблицы и представления после чтения удалены.

Наблюдаемый результат программы
НаблюдениеРезультат
Остаток после успешной операции и отмены3
Сохранённый статусreserved
Записей в журнале1
Сохранённая записьreserved 2
Отмена обработанада
Строки и дополнительные наблюдения
{
    "product_after_both_transactions": {
        "id": 1,
        "stock": 3,
        "state": "reserved"
    },
    "audit_after_both_transactions": [
        {
            "id": 1,
            "message": "reserved 2"
        }
    ]
}

Полный JSON результата, включая реальные идентификаторы, сохранён рядом в result.json.