Откатить частичное задание и вернуть Session следующему

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

Наблюдаемый результат программы
НаблюдениеРезультат
Частичная строка была видна внутри заданияда
Конфликт первичного ключа распознанда
Частичная строка исчезла после rollbackда
Session возвращенада
Исходная запись сохраненаexisting
Следующее задание сохраненоnext-job
Строк в итоговом журнале2
Строки и дополнительные наблюдения
{
    "options": {
        "enabled": true,
        "maxSize": 1,
        "queueTimeOut": 250
    },
    "partial_inside_transaction": {
        "id": 2,
        "state": "working"
    },
    "failure_chain": [
        {
            "class": "mysql_xdevapi\\Exception",
            "code": 10000,
            "message": "[HY000] Couldn't fetch data"
        },
        {
            "class": "mysql_xdevapi\\Exception",
            "code": 1062,
            "message": "[23000] Duplicate entry '1' for key 'mysql144_failed_job_fa4a3db62f14.PRIMARY'"
        }
    ],
    "partial_after_rollback": null,
    "release_result": true,
    "saved_rows": [
        {
            "id": 1,
            "task_name": "existing",
            "state": "done"
        },
        {
            "id": 3,
            "task_name": "next-job",
            "state": "done"
        }
    ]
}

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