code: public GitlabProjectMember updateProjectMember(Integer projectId, Integer userId, GitlabAccessLevel accessLevel, String expiresAt) throws IOException {
          Query query = new Query()
                  .appendIf("access_level", accessLevel)
                  .appendIf("expires_at", expiresAt);
          String tailUrl = GitlabProject.URL + "/" + projectId + GitlabProjectMember.URL + "/" + userId + query.toString();
          return retrieve().method(PUT).to(tailUrl, GitlabProjectMember.class);
      }
docs: Updates a project member.
  
  @param projectId   the project id
  @param userId      the user id
  @param accessLevel the updated access level for the specified user
  @param expiresAt   the date at which the user's membership expires at in the form YEAR-MONTH-DAY
  @return GitLabProjectMember with updated access level on success
  @throws IOException on Gitlab API call error