You can perform updates on allpages-locked heap tables in several ways:
If the length of the row does not change, the updated row replaces the existing row, and no data moves on the page.
If the length of the row changes, and there is enough free space on the page, the row remains in the same place on the page, but other rows move up or down to keep the rows contiguous on the page.
The row offset pointers at the end of the page are adjusted to point to the changed row locations.
If the row does not fit on the page, the row is deleted from its current page, and inserted as a new row on the last page of the table. This type of update may cause a conflict on the last page of the heap.