It is the existing object that is to be replaced by the put, if not nil. When writing to an F3 archive it is not used because it makes no difference to overwrite an existing object with another.
It could be used by forges for which updating an object needs optimization or different strategies depending on the data being updated. For instance the Forgejo API does not currently allow to modify the update or creation time.