code: async def immediate_execute_command(self, *args, **options):
          
          command_name = args[0]
          conn = self.connection
          # if this is the first call, we need a connection
          if not conn:
              conn = self.connection_pool.get_connection()
              self.connection = conn
          try:
              await conn.send_command(*args)
              return await self.parse_response(conn, command_name, **options)
          except (ConnectionError, TimeoutError) as e:
              conn.disconnect()
              if not conn.retry_on_timeout and isinstance(e, TimeoutError):
                  raise
              # if we're not already watching, we can safely retry the command
              try:
                  if not self.watching:
                      await conn.send_command(*args)
                      return await self.parse_response(conn, command_name, **options)
              except ConnectionError:
                  # the retry failed so cleanup.
                  conn.disconnect()
                  await self.reset()
                  raise
docs: Execute a command immediately, but don't auto-retry on a
          ConnectionError if we're already WATCHing a variable. Used when
          issuing WATCH or subsequent commands retrieving their values but before
          MULTI is called.