Looking at the Python aspect of your question, both of your examples use the with statement:
The with
statement is used to wrap the execution of a block with methods defined by a context manager (see section With Statement Context Managers). This allows common try
…except
…finally
usage patterns to be encapsulated for convenient reuse.
with_stmt ::= “with” with_item (“,” with_item)* “:” suite
with_item ::= expression
[“as” target
]
The part after as, whether called "rows" or "cursor," it just a label/name for the target object, and that label/name carries no meaning in and of itself. You could write, with arcpy.da.SearchCursor() as elephant:, and it wouldn't matter; but it might confuse someone reading the code what a cursor has to do with elephants.
The part of the code after the with statement in your examples, the suite as the documentation refers to it, doesn't depend on whether someone used "rows" or "cursors," they are just names. For example, one doesn't have to use "rows" to use a list comprehension in the suite, list comprehensions could be used with whatever named was chosen for the target object of the context manager.