There's now an API to modify user properties. Scripting example:
{{velocity}}
#set ($props = $services.user.getProperties("testuser"))
#set ($discard = $props.setEmail('john@doe.com'))
#set ($discard = $props.setFirstName('John'))
#set ($discard = $props.save())
{{/velocity}}
#set ($props = $services.user.getProperties("testuser"))
#set ($discard = $props.setEmail('john@doe.com'))
#set ($discard = $props.setFirstName('John'))
#set ($discard = $props.save())
{{/velocity}}