code: public CMARole update(CMARole role) {
      assertNotNull(role, "role");
  
      final String id = getResourceIdOrThrow(role, "role");
      final String spaceId = getSpaceIdOrThrow(role, "role");
      final Integer version = getVersionOrThrow(role, "update");
  
      final CMASystem sys = role.getSystem();
      role.setSystem(null);
  
      try {
        return service.update(spaceId, id, role, version).blockingFirst();
      } finally {
        role.setSystem(sys);
      }
    }
docs: Update the given role instance on Contentful.
  <p>
  Please make sure that the instance provided is fetched from Contentful. Otherwise you will
  get an exception thrown.
  
  @param role the role fetched from Contentful, updated by caller, to be updated.
  @return the updated role.
  @throws IllegalArgumentException if space id is null.
  @throws IllegalArgumentException if role is null.
  @throws IllegalArgumentException if role id is null.
  @throws IllegalArgumentException if role does not have a version attached.