async def METHOD_NAME(
    self,
    annotations: List[Dict],
    release,
    user_id: str,
    progress_handler: AbstractProgressHandler,
    hmm_temp_profile_path,
):
    """
    Installs annotation and profiles given a list of annotation dictionaries and
    path to profile file.
    """
    tracker = AccumulatingProgressHandlerWrapper(progress_handler, len(annotations))
    try:
        release_id = int(release["id"])
    except TypeError:
        release_id = release["id"]
    async with self._mongo.create_session() as session:
        for annotation in annotations:
            await self._mongo.hmm.insert_one(
                dict(annotation, hidden=False), session=session
            )
            await tracker.add(1)
        await self._mongo.status.update_one(
            {"_id": "hmm", "updates.id": release_id},
            {
                "$set": {
                    "installed": create_update_subdocument(release, True, user_id),
                    "updates.$.ready": True,
                }
            },
            session=session,
        )
        try:
            await to_thread(
                shutil.move, str(hmm_temp_profile_path), str(self.profiles_path)
            )
        except Exception:
            await session.abort_transaction()
            raise