Hi Flavio,
tl;dr: they are thread safe.
making a field transient means that it is ignored when serializing the class. This is for example useful when you have a non-serializable field in your function (you have to initialize it in the open() method then).
So making it transient or not doesn't change the fields thread safety. Flink doesn't call the user defined functions concurrently (=from multiple threads), so you don't need to worry about thread safety.
The only case you need to worry about thread safety in your (Rich-)Function is when you're starting threads yourself inside the Function.