def METHOD_NAME(self, container: Dict, representation: Dict):
    """Update the loaded asset.
    This will remove all objects of the current collection, load the new
    ones and add them to the collection.
    If the objects of the collection are used in another collection they
    will not be removed, only unlinked. Normally this should not be the
    case though.
    Warning:
        No nested collections are supported at the moment!
    """
    object_name = container["objectName"]
    asset_group = bpy.data.objects.get(object_name)
    libpath = Path(get_representation_path(representation))
    extension = libpath.suffix.lower()
    self.log.info(
        "Container: %s\nRepresentation: %s",
        pformat(container, indent=2),
        pformat(representation, indent=2),
    )
    assert asset_group, (
        f"The asset is not loaded: {container['objectName']}")
    assert libpath, (
        f"No existing library file found for {container['objectName']}")
    assert libpath.is_file(), f"The file doesn't exist: {libpath}"
    assert extension in plugin.VALID_EXTENSIONS, (
        f"Unsupported file: {libpath}")
    metadata = asset_group.get(AVALON_PROPERTY)
    group_libpath = metadata["libpath"]
    normalized_group_libpath = str(
        Path(bpy.path.abspath(group_libpath)).resolve())
    normalized_libpath = str(
        Path(bpy.path.abspath(str(libpath))).resolve())
    self.log.debug(
        "normalized_group_libpath:\n  %s\nnormalized_libpath:\n  %s",
        normalized_group_libpath,
        normalized_libpath,
    )
    if normalized_group_libpath == normalized_libpath:
        self.log.info("Library already loaded, not updating...")
        return
    mat = asset_group.matrix_basis.copy()
    self._remove(asset_group)
    self._process(str(libpath), asset_group, object_name)
    asset_group.matrix_basis = mat
    metadata["libpath"] = str(libpath)
    metadata["representation"] = str(representation["_id"])