This solves the first problem. But , is it possible that click of that button, i make a REST call , fetch data and then show that data as child nodes connected to the node whose button is clicked. With all the other nodes intact.
The button click will give us another json something like: (will be shown as expanded tree. Can further have subprocess).
Have that button click handler make your REST API call. When you successfully receive the new data, start a transaction, add the node data to the model as children of the intended parent, and commit the transaction.