code: protected void updateTimer(String containerId, Long processInstanceId, long timerId, long delay, long period, int repeatLimit, boolean relative) {
          Map<String, Number> timerUpdate = new HashMap<>();
          timerUpdate.put("delay", delay);
          timerUpdate.put("period", period);
          timerUpdate.put("repeatLimit", repeatLimit);
  
          if( config.isRest() ) {
              Map<String, Object> valuesMap = new HashMap<String, Object>();
              valuesMap.put(CONTAINER_ID, containerId);
              valuesMap.put(PROCESS_INST_ID, processInstanceId);
              valuesMap.put(TIMER_INSTANCE_ID, timerId);
  
              Map<String, String> headers = new HashMap<String, String>();
  
  
              makeHttpPutRequestAndCreateCustomResponse(
                      build(loadBalancer.getUrl(), ADMIN_PROCESS_URI + "/" + UPDATE_TIMER_PROCESS_INST_PUT_URI, valuesMap)+ "?relative=" + relative, timerUpdate, null, headers);
          } else {
              CommandScript script = new CommandScript( Collections.singletonList(
                      (KieServerCommand) new DescriptorCommand( "ProcessAdminService", "updateTimer", serialize(timerUpdate), marshaller.getFormat().getType(), new Object[]{containerId, processInstanceId, timerId, relative})));
              ServiceResponse<?> response = (ServiceResponse<?>) executeJmsCommand( script, DescriptorCommand.class.getName(), "BPM", containerId ).getResponses().get(0);
              throwExceptionOnFailure(response);
          }
      }
docs: /*
  helper methods