As per msdn
documentation[
^], a failed transaction can still cause the number to be incremented.
"Failed statements and transactions can change the current identity for a table and create gaps in the identity column values. The identity value is never rolled back even though the transaction that tried to insert the value into the table is not committed. For example, if an INSERT statement fails because of an IGNORE_DUP_KEY violation, the current identity value for the table is still incremented."
As a result, you always have a chance that some values may be missed.