You must provide 3rd argument with `ShipmentInterface::STATE_ONHOLD` to ensure you change only onhold shipments.