def METHOD_NAME(self, serializer):
    # Check instance permissions with resolve_object
    mapid = serializer.instance.id
    key = "urlsuffix" if Map.objects.filter(urlsuffix=mapid).exists() else "pk"
    map_obj = resolve_object(
        self.request, Map, {key: mapid}, permission="base.change_resourcebase", permission_msg=_PERMISSION_MSG_SAVE
    )
    instance = serializer.instance
    if instance != map_obj:
        raise GeneralMapsException(detail="serializer instance and object are different")
    # Thumbnail will be handled later
    post_change_data = {
        "thumbnail": serializer.validated_data.pop("thumbnail_url", ""),
        "dataset_names_before_changes": [lyr.alternate for lyr in instance.datasets],
    }
    instance = serializer.save()
    # thumbnail, events and resouce routines
    self._post_change_routines(
        instance=instance,
        create_action_perfomed=False,
        additional_data=post_change_data,
    )