While it is not possible to add a new UpdateRequestProcessorChain, there is a Config API to add/update/delete UpdateProcessor. Following is how its done using SolrJ.
<updateRequestProcessorChain name="dedupe" processor="myprocessor">
<processor class="solr.processor.SignatureUpdateProcessorFactory">
<bool name="enabled">true</bool>
<str name="signatureField">id</str>
<bool name="overwriteDupes">false</bool>
<str name="fields">name,features,cat</str>
<str name="signatureClass">solr.processor.Lookup3Signature</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
<updateProcessor class="solr.RemoveBlankFieldUpdateProcessorFactory" name="myprocessor"/>
String command = "{\"update-updateprocessor\": {"name": "myprocessor
", "class": "solr.FirstFieldValueUpdateProcessorFactory", "fieldName": "test_s"} }}";
GenericSolrRequest rq = new GenericSolrRequest(SolrRequest.METHOD.POST, "/config", null);
ContentStream content = new ContentStreamBase.StringStream(command); rq.setContentStreams(Collections.singleton(content)); rq.process(solrClient);
This will update the above defined RemoveBlankFieldUpdateProcessorFactory(myprocessor) in solrconfig.xml with FirstFieldValueUpdateProcessorFactory.