How to delete rows that fail sqlite constraint?

I have a table that looks like this:
orders (

user_id INTEGER

item_id INTEGER

quantity INTEGER

... (more columns and constraints)

CHECK(quantity > 0)

)

I want to decrease the quantity of an order by one, and delete it if that would make the quantity zero. 
Is it possible to do this in one statement?
Right now I have: 
UPDATE orders SET quantity = quantity - 1 WHERE *blah blah complicated clause*

However when the quantity is 1, this fails and leaves the quantity at 1, because setting it to 0 would be a constraint error.
I want it to instead just delete the row when the quantity is 1, because the order is now empty. How can I do this?

I'd suggest deleting rows, according to the complicated clause with  AND quantity < 2 prior to doing the UPDATE.
e.g. (where user_id = 1 represents the complicated clause)
DROP TABLE IF EXISTS orders;
CREATE TABLE IF NOT EXISTS orders (user_id INTEGER, order_id INTEGER, quantity INTEGER, CHECK(quantity > 0) );
INSERT INTO orders VALUES (1,1,10),(1,2,1),(1,3,2),(2,1,3),(2,2,2),(2,3,5);
SELECT * FROM orders;
DELETE FROM orders WHERE user_id = 1 AND quantity < 2;
UPDATE orders SET quantity = quantity -1 WHERE user_id = 1;
SELECT * FROM orders;

results in (all rows before anything is done) :-

and then :-

i.e. orders 1 and 3 have been updated whilst order 2 (circled in above) has been deleted.