code: def _call_lset(self, command, index, value, *args, **kwargs):
          
          if self.indexable:
              old_value = self.lindex(index)
              self.deindex([old_value])
          result = self._traverse_command(command, index, value, *args, **kwargs)
          if self.indexable:
              self.index([value])
          return result
docs: Before setting the new value, get the previous one to deindex it. Then
          call the command and index the new value, if exists