<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_at(self, index, item):
 """ 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. """

        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)