def METHOD_NAME(
    self,
    prolific_project_id: str,
    qualification_name: str,
) -> ParticipantGroup:
    """
    Create a new qualification (Prolific Participant Group) on Prolific
    owned by the requester provided
    """
    client = self._get_client(self.requester_name)
    _qualification_name = qualification_name
    qualification = prolific_utils.find_or_create_qualification(
        client,
        prolific_project_id,
        qualification_name,
    )
    if qualification is None:
        # Try to append time to make the qualification unique
        _qualification_name = f"{qualification_name}_{time.time()}"
        qualification = prolific_utils.find_or_create_qualification(
            client,
            prolific_project_id,
            _qualification_name,
        )
        attempts = 0
        while qualification is None:
            # Append something somewhat random
            _qualification_name = f"{qualification_name}_{str(uuid4())}"
            qualification = prolific_utils.find_or_create_qualification(
                client,
                prolific_project_id,
                _qualification_name,
            )
            attempts += 1
            if attempts > MAX_QUALIFICATION_ATTEMPTS:
                raise Exception(
                    "Something has gone extremely wrong with creating qualification "
                    f"{qualification_name} for requester {self.requester_name}"
                )
    # Store the new qualification in the datastore
    self.datastore.create_participant_group_mapping(
        qualification_name=qualification_name,
        requester_id=self.db_id,
        prolific_project_id=prolific_project_id,
        prolific_participant_group_name=_qualification_name,
        prolific_participant_group_id=qualification.id,
    )
    return qualification