<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _UpdateAndMigrateUnmerged(self, not_merged_stops, zone_map, merge_map, schedule):
 """Correct references in migrated unmerged stops and add to merged_schedule. For stops migrated from one of the input feeds to the output feed update the parent_station and zone_id references to point to objects in the output feed. Then add the migrated stop to the new schedule. Args: not_merged_stops: list of stops from one input feed that have not been merged zone_map: map from zone_id in the input feed to zone_id in the output feed merge_map: map from Stop objects in the input feed to Stop objects in the output feed schedule: the input Schedule object """

    # for the unmerged stops, we use an already mapped zone_id if possible
    # if not, we generate a new one and add it to the map
    for stop, migrated_stop in not_merged_stops:
      if stop.zone_id in zone_map:
        migrated_stop.zone_id = zone_map[stop.zone_id]
      else:
        migrated_stop.zone_id = self.feed_merger.GenerateId(stop.zone_id)
        zone_map[stop.zone_id] = migrated_stop.zone_id
      if stop.parent_station:
        parent_original = schedule.GetStop(stop.parent_station)
        migrated_stop.parent_station = merge_map[parent_original].stop_id
      self.feed_merger.merged_schedule.AddStopObject(migrated_stop)