<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def insert(self, optional_root_locations_path):
 """Insert a path of optional Locations into the tree. Each OptionalTraversalTree object contains child Location objects as keys mapping to other OptionalTraversalTree objects. Args: optional_root_locations_path: list of optional root Locations all except the last of which must be present in complex_optional_roots """

        encountered_simple_optional = False
        parent_location = self._root_location
        for optional_root_location in optional_root_locations_path:
            if encountered_simple_optional:
                raise AssertionError(u'Encountered simple optional root location {} in path, but'
                                     u'further locations are present. This should not happen: {}'
                                     .format(optional_root_location, optional_root_locations_path))

            if optional_root_location not in self._location_to_children:
                # Simple optionals are ignored.
                # There should be no complex optionals after a simple optional.
                encountered_simple_optional = True
            else:
                self._location_to_children[parent_location].add(optional_root_location)
                parent_location = optional_root_location