async upsertUser(request) {
    const id = request.getId();
    const content = request.getBodyObject("content");
    const userId = request.getKuid();
    const profileIds = request.getBodyArray("content.profileIds");
    const defaultValues = request.getBodyObject("default", {});

    try {
      return await this._changeUser(request, id, content, userId, profileIds);
    } catch (error) {
      if (error.id && error.id === "security.user.not_found") {
        const creatingContent = {
          ...defaultValues,
          ...content, // Order important, content erase default duplicates
        };

        return this._persistUser(request, profileIds, creatingContent);
      }

      throw error;
    }
  }
Applies a partial update to an existing user.
If the user doesn't already exist, a new user is created.

@param {Request} request
@returns {Promise}