update

Replaces the stored entry with the same block+owner as loc by loc itself (used to change a target's TargetOptions). Returns false when there is nothing to update or nothing would change.

Goes through remove + add rather than mutating in place because the flat bag and owner index are keyed by full value equality — swapping the instance is the only way to keep every index consistent.