Adds by to the value and returns the new value.
The update is atomic with respect to concurrent updates. Pass a negative by to subtract.