code: public function invoke(MethodInvocation $invocation)
      {
          /** @var ReflectionMethod $method */
          $method = $invocation->getMethod();
          /** @var Transactional $transactional */
          $transactional = $method->getAnnotation(Transactional::class);
          if (\count($transactional->value) > 1) {
              return (new PropTransaction)($invocation, $transactional);
          }
          if (! $this->pdo instanceof ExtendedPdoInterface) {
              return $invocation->proceed();
          }
          try {
              $this->pdo->beginTransaction();
              $result = $invocation->proceed();
              $this->pdo->commit();
          } catch (\PDOException $e) {
              $this->pdo->rollBack();
              throw new RollbackException($e->getMessage(), 0, $e);
          }
  
          return $result;
      }
docs: {@inheritdoc}