update: when delete a key not exist, return 0 instead of -1