Why del? Checks look pretty complicated.
I believe what we really need is to simply use existing value if it is >=0, and make it 0 in any other cases.
And make a test for it.
And Never delete param, as it may cause issues in other places, which rely on it.