code: def add_at(self, index, item):
          
          check_not_none(item, "Value can't be None")
          element_data = self._to_data(item)
          return self._encode_invoke(list_add_with_index_codec, index=index, value=element_data)
docs: Adds the specified item at the specific position in this list. Element in this position and following elements
          are shifted to the right, if any.
  
          :param index: (int), the specified index to insert the item.
          :param item: (object), the specified item to be inserted.