Сохранить два резерва после явного конфликта записи

Результат настоящего запуска PHP с PDO_SQLITE. Собственный учебный файл базы после наблюдений удалён; полезная выгрузка сохранена.

Результат выполнения
НаблюдениеРезультат
ТоварКабель
Начальный остаток5
Первый резерв2
Первая попытка второго покупателяHY000 / 5: запись занята
Новый резерв после commit1
Остаток после двух резервов2
Дочерний процесс завершёнда
Квитанцияreservation.csv
Полученные строки и наблюдения
{
    "parent_stock": [
        {
            "sku": "CABLE",
            "qty": 3
        }
    ],
    "blocked": {
        "phase": "blocked",
        "error": {
            "sqlstate": "HY000",
            "driver_code": 5,
            "message_present": true
        },
        "transaction_active": false,
        "elapsed_ms": 1165.2997
    },
    "second_attempt": {
        "phase": "reserve",
        "affected": 1,
        "stock": [
            {
                "sku": "CABLE",
                "qty": 2
            }
        ]
    },
    "final": [
        {
            "sku": "CABLE",
            "title": "Кабель",
            "qty": 2
        }
    ],
    "child_process": {
        "started": true,
        "stopped": true,
        "exit_code": 0,
        "termination_by_parent": false,
        "deadline_seconds": 20,
        "transport": "atomic_json_files",
        "ipc_removed": true
    },
    "business_attempts": {
        "first": "begin failed; no UPDATE",
        "second": "one conditional UPDATE after confirmed parent commit"
    }
}

result.json содержит те же данные.