It's basically the opposite of reading (I haven't tested this code though):
@Inject
SaajSoapMessageFactory mf;
...
SaajSoapMessage message = mf.createWebServiceMessage();
messageContext.setResponse(message);
MarshallingUtils.marshal(jaxbMarshaller, cor, message)
It would be much easier to do this at the actual endpoint, rather than in an interceptor.