code: @Override
      @Path("/{ownerType}/{ownerId}")
      @ApiOperation(value="Update values for an ownerType and ownerId", response=StatusMessage.class)
      @ApiImplicitParams({
          @ApiImplicitParam(name="Values", paramType="body")})
      public JSONObject put(String path, JSONObject content, Map<String,String> headers)
      throws ServiceException, JSONException {
          Map<String,String> parameters = getParameters(headers);
          String ownerType = getSegment(path, 1);
          if (ownerType == null)
              ownerType = parameters.get("ownerType");
          if (ownerType == null)
              throw new ServiceException("Missing parameter: ownerType");
          String ownerId = getSegment(path, 2);
          if (ownerId == null)
              ownerId = parameters.get("ownerId");
          if (ownerId == null)
              throw new ServiceException("Missing parameter: ownerId");
          String updateOnly = getSegment(path, 3);
          if (updateOnly == null)
              updateOnly = parameters.get("updateOnly");
          if (content == null)
              throw new ServiceException("Missing JSON object: attributes");
  
          try {
              Map<String,String> values = new HashMap<String,String>();
              String[] names = JSONObject.getNames(content);
              if (names != null) {
                  for (String name : names)
                      values.put(name, content.getString(name));
              }
              WorkflowServices workflowServices = ServiceLocator.getWorkflowServices();
  
              if (updateOnly != null) {
                  // update values, without deleting all other values for that ownerId
                  workflowServices.updateValues(ownerType, ownerId, values);
              } else {
                  workflowServices.setValues(ownerType, ownerId, values);
              }
              return null;
          }
          catch (JSONException ex) {
              throw new ServiceException(ex.getMessage(), ex);
          }
      }
docs: Update values for owner type and id.
  Existing values are always overwritten.