Является ли запрос на выполнение во второй строке кода частью атомарной транзакции, или другими словами: возможно ли, что другой поток успешно выполнит запрос между 2-й и 4-й строками следующего кода?
$tx = $client->transaction();
$result = $tx->run('CREATE (n:Person) SET n.name = {name} RETURN id(n)', ['name' => 'Michal']);
$tx->push('CREATE (n:Person) RETURN id(n)');
$results = $tx->commit();
PHP потокобезопасен и ничего не разделяет между потоками.
Поэтому нет, невозможно, чтобы другой поток выполнял запрос в той же транзакции, что и тот, который открыт текущим потоком, он скорее будет использовать свою собственную транзакцию.
Других решений пока нет …