code: def insert(self, index, value):
          
          _uuid = gen_rand_str(24, 32)
          item_at_index = self[index]
          self[index] = _uuid
          uuid = _uuid
          _uuid = self._dumps(uuid)
          pipe = self._client.pipeline(transaction=True)  # Needs to be atomic
          pipe.linsert(
                  self.key_prefix, "BEFORE", _uuid, self._dumps(value))
          pipe.linsert(
                  self.key_prefix, "BEFORE", _uuid, item_at_index)
          results = pipe.execute()
          self.remove(uuid)
          return results[0]
docs: Inserts @value before @index in the list.
  
              @index: list index to insert @value before
              @value: item to insert
              @where: whether to insert BEFORE|AFTER @refvalue
  
              -> #int new length of the list on success or -1 if refvalue is not
                  in the list.