In jBPM 4 it works that way: JbpmContext::save(ProcessInstance). How does it work in jBPM 5 ?
If you set the persistence as explained in http://docs.jboss.org/jbpm/v5.0/userguide/ch08.html the process instance will be saved automatically at every safe point.