code: public void update(final T object, final SuccessCallback<Long> successCallback, final ErrorCallback errorCallback) {
          checkNotNull(successCallback);
          checkNotNull(errorCallback);
          checkNotNull(object);
  
          final Callable<Long> call = new Callable<Long>() {
              @Override
              public Long call() throws Exception {
                  return SugarRecord.update(object);
              }
          };
  
          final Future<Long> future = doInBackground(call);
          Long id;
  
          try {
              id = future.get();
  
              if (null == id) {
                  errorCallback.onError(new Exception("Error when performing update of " + object.toString()));
              } else {
                  successCallback.onSuccess(id);
              }
  
          } catch (Exception e) {
              errorCallback.onError(e);
          }
      }
docs: Method that works on top of SugarRecord.update and runs the code asynchronously via Futures
  and callbacks.
  
  @param object the object you want to update
  @param successCallback the callback that will be performed if the update is successful
  @param errorCallback the callback that will be performed if the update has an error