Good code doesn’t have concepts like “typically doesn’t mutate”. It’s either mutable or immutable.
The standard way to do it is to mutate clones as always in Java. Typically by use of libraries that provide this. You really need very bad code to have to think about if objects are mutable.
Apparently you don’t know most immutable structures are optimized for modified cloning in ways mutables aren’t.