I actually found a way to do that.
First create a new blank node, then iterate over original node and check your condition and put the new node accordingly.
This may take only fraction of time, but will resolve these kind of issues.
Here is the code
ObjectNode newChildNode = new ObjectNode(JsonNodeFactory.instance);
Iterator<Map.Entry<String, JsonNode>> fields = childNode.fields();
while(fields.hasNext()){
Map.Entry<String, JsonNode> entry = fields.next();
newChildNode.putPOJO(entry.getKey(), entry.getValue());
if("id".equals(entry.getKey())){
newChildNode.put("rollNo", "52");
}
}
//This will convert the POJO Node again to JSON node
ObjectMapper mapper = new ObjectMapper();
newChildNode= mapper.readTree(newChildNode.toString());