In case a request that contains an empty po_lines array, all the PO Lines should be removed... e.g. per the "if the po_line exists in the database but not in the request, remove the po_line" rule.
The resulting CompositePurchaseOrder.java model generated based on composite_purchase_order.json schema has
This means that if request does not include po_lines or includes "po_lines":  the result is the same i.e. empty List.
The schema change is required to make these 2 cases different:
In this case if the request does not include po_lines or includes "po_lines": null the result will be absolutely the same i.e. "do not touch PO lines". The business logic should start processing the PO lines only if the field is not null.