code: async def execute(self, *, return_exceptions=False):
          
          assert not self._done, "Pipeline already executed. Create new one."
          self._done = True
  
          if self._pipeline:
              if isinstance(self._pool_or_conn, AbcPool):
                  async with self._pool_or_conn.get() as conn:
                      return await self._do_execute(
                          conn, return_exceptions=return_exceptions)
              else:
                  return await self._do_execute(
                      self._pool_or_conn,
                      return_exceptions=return_exceptions)
          else:
              return await self._gather_result(return_exceptions)
docs: Execute all buffered commands.
  
          Any exception that is raised by any command is caught and
          raised later when processing results.
  
          Exceptions can also be returned in result if
          `return_exceptions` flag is set to True.