def METHOD_NAME(self):
    """
    Create the client and client roles
    Checks if the client is present, if not the creates it
    """
    try:
        auth_client.refresh_token()
        try:
            client = auth_client.get_client(self.get_client_name())
        except KeycloakGetError as e:
            # thrown if client doesn't exist
            auth_client.METHOD_NAME(client_name=self.get_client_name())
            client = auth_client.get_client(self.get_client_name())
        for role in self.client_roles:
            try:
                log.info("Creating role %s", role)
                auth_client.create_client_role(client["id"], role)
            except KeycloakError as e:
                # Thrown if role already exists
                log.error(e.error_message)
        if self.default_user_role:
            # add the default user role to the default realm role
            realm = get_auth_realm()
            admin_client = auth_client.get_admin_client()
            admin_client.refresh_token()
            default_user_role = admin_client.get_client_role(
                self.get_client_name(),
                self.default_user_role
            )
            admin_client.add_composite_realm_roles_to_role(
                f'default-roles-{realm}',
                [default_user_role, ]
            )
    except Exception as e:
        log.error("Error creating Keycloak client %s. May need to manually migrate the client.", self.get_client_name(), exc_info=True)
        raise Exception("Error creating Keycloak client.") from e