Yes, if you do a $do=false in the onBeforeCartUpdate trigger, it means that you don't want the cart to be updated.
And on the checkout, when the cart is not updated on a step, it goes to the next step automatically.
Instead of the trigger onBeforeCartUpdate, I would recommend to implement onAfterProductQuantityCheck(&$product, &$wantedQuantity,&$quantity, &$cartContent, &$cart_product_id_for_product, &$displayErrors)
Instead of allowing you to cancel the cart update, it allows you to modify the $quantity variable that will be updated for one product.
You get the new quantity requested by the user in $wantedQuantity.
And the format of the variables is the same regardless if you add a product to the cart or modify the quantities in the checkout.