https://www.open62541.org/doc/master/tutorial_server_datasource.htm
Updating variables manually states "Assuming that our application gets triggered when a new value arrives from the underlying process, we can just write into the variable".
And the code that follows the above has
UA_Server_writeValue(server, currentNodeId, value);
The above seems to suggest that it is thread-safe. However asking the question here as a "sanity check".
Note: Attempted to post this early however it did not shown up on page refresh/reload. This is the second attempt.