code: public long getAndAdd(T obj, long delta) {
          long prev, next;
          do {
              prev = get(obj);
              next = prev + delta;
          } while (!compareAndSet(obj, prev, next));
          return prev;
      }
docs: Atomically adds the given value to the current value of the field of
  the given object managed by this updater.
  
  @param obj An object whose field to get and set
  @param delta the value to add
  @return the previous value