public function run(Statement $statement) { $this->assertStarted(); try { $results = $this->session->pushToTransaction($this->transactionId, array($statement)); return $results->results()[0]; } catch (Neo4jException $e) { if ($e->effect() === Neo4jException::EFFECT_ROLLBACK) { $this->closed = true; $this->state = self::ROLLED_BACK; } throw $e; } }