Yes to both. Custom code inside a mutator will cause the updated value to be written back next time there's a flush; custom code of the sort in your accessor example is pointless, as it's exactly what hibernate proxies do. It might be useful if you're not mapping the Article list; common practice is to put that sort of code in a factory rather than a persisted object, though.
If you want a manipulated value provided to the API user, but the unmanipulated value to be persisted, then you should map the unmanipulated version using private accessors and mutators, and expose an unmapped property:
Code:
public String getName()
{
return Util.manipulate(getInternalName());
}