Add support to `offset` for `update_all`

The `update_all` method didn't support `offset`. 
Also I added more test cases to cover other scenarios.

Fixes #10849