What is a non-atomic yield in the context of SQL Server?
The following is what an Atomic block in SQL is:


  Every natively compiled stored procedure contains exactly one block
  of Transact-SQL statements. This is an ATOMIC block.


This is how Atomic blocks relate to transactions and error handling:

BEGIN ATOMIC 


  If a transaction already exists on a session (because a batch executed
  a BEGIN TRANSACTION statement and the transaction remains active),
  then starting an atomic block will create a savepoint in the
  transaction. If the block exits without an exception, the savepoint
  that was created for the block commits, but the transaction will not
  commit until the transaction at the session level commits. If the
  block throws an exception, the effects of the block are rolled back
  but the transaction at the session level will proceed, unless the
  exception is transaction-dooming. For example a write conflict is
  transaction-dooming, but not a type casting error.


Atomic Blocks in Native Procedures