Accepts a :value: and :index: parameter and inserts
        a new key, value member at the desired index.

        Note: Inserting with a negative index will have the following behavior:
        >>> l = [1, 2, 3, 4]
        >>> l.insert(-1, 5)
        >>> l
        [1, 2, 3, 5, 4]

def insert(self, value, index):
        '''Accepts a :value: and :index: parameter and inserts
        a new key, value member at the desired index.

        Note: Inserting with a negative index will have the following behavior:
        >>> l = [1, 2, 3, 4]
        >>> l.insert(-1, 5)
        >>> l
        [1, 2, 3, 5, 4]
        '''

        if value in self._set:
            self._set.discard(value)
        self._keys.insert(index, value)
        self._set.add(value)