code: async def pipeline(self, transaction=True, shard_hint=None):
          
          from aredis.pipeline import StrictPipeline
          pipeline = StrictPipeline(self.connection_pool, self.response_callbacks,
                                    transaction, shard_hint)
          await pipeline.reset()
          return pipeline
docs: Return a new pipeline object that can queue multiple commands for
          later execution. ``transaction`` indicates whether all commands
          should be executed atomically. Apart from making a group of operations
          atomic, pipelines are useful for reducing the back-and-forth overhead
          between the client and server.