code: private function assertClient(ClientInterface $client)
      {
          if ($client->getConnection() instanceof AggregateConnectionInterface) {
              throw new NotSupportedException(
                  'Cannot initialize a MULTI/EXEC transaction over aggregate connections.'
              );
          }
  
          if (!$client->getCommandFactory()->supportsCommands(array('MULTI', 'EXEC', 'DISCARD'))) {
              throw new NotSupportedException(
                  'MULTI, EXEC and DISCARD are not supported by the current command factory.'
              );
          }
      }
docs: Checks if the passed client instance satisfies the required conditions
  needed to initialize the transaction object.
  
  @param ClientInterface $client Client instance used by the transaction object.
  
  @throws NotSupportedException