The reason you need to generally dispatch updates via modeling
is the fact that bpmn-js needs to be informed when elements have changed (read about it here).
Using modeling.updateProperties(...)
changes attributes of the underlying BPMN element (exactly what you want to do). For details have a look at the UpdatePropertiesHandler
that takes care of doing that.
For further assistance, please provide your example somewhere so we can look into it.
Edit: Learn about the available BPMN properties in the bpmn.json
descriptor.