Indeed, the change of the cell content related to a field is driven by the formatted value assigned to the field.
By convention, if a field value doesn't change, it gets a default formatted value of null, which means that the cell should not change on the screen; in this case, the "setAttribute" call is ignored (this probably turns out to be a misleading convention).
You can enforce the cell change by reassigning the formatted value for the field,
which you could have cached,
or could recompute, based on the current server value, as returned by "getServerValue" (that is always valued, even for unchanged fields).
See the
setFormattedValue jsdoc.