Fix add() to respect options.id

Use options.id with priority if given, just like add()'s own documentation and put().

This also fixes the existance check by preventing put() from storing an object with different id via options.id.