Geocoding addresses from a SAP database
In Python, you don't need to create your variables before using them, so the address = '' before your loop is unnecessary. You also don't need to reset a variable before using it again, so the address = '' at the end of each loop iteration is particularly unnecessary.
You currently get the addresses from the DB and then concatenate parts of that address as the query string for your geolocation. This would be easier if you got the address in the same order you need it later:
sql_command = &quot;SELECT ADDRNUMBER, STREET, CITY1, REGION, POST_CODE1 FROM CV_COORDS_TO_PROCESS&quot;
cursor.execute(sql_command)
rows = cursor.fetchall()

for row in rows:
    #build the address string and save the address id
    addr_id, address = row[0], &quot;, &quot;.join(row[1:])
    ...

There's probably a way to do the concatenation already in SQL, but I am not versed enough in that language to suggest how.
If you want to get the first value from an iterable, you can use next:
location = next(iter(client.geocode(address)['results']))

Most DB wrappers support prepared statements, which would mean that you don't have to prepare the full query string, but rather use something like this:
merge_query = &quot;upsert zsa_addr_coords values ('100', ?, ?, ?, ?, ?) where addr_id = ?&quot;
try:
    cursor.execute(merge_query, (addr_id, lat, long, accuracy, accuracy_type, addr_id));
except:
    print (ex)

Indeed, hdbcli also support this: https://blogs.sap.com/2017/07/26/sap-hana-2.0-sps02-new-feature-updated-python-driver/
It should even take care of quoting for you and prevents the most basic SQL
injection attacks.
And since that string now never changes, you can pull it outside of the loop.
You can probably speed up the execution time by disabling the auto-commit mode before your loop and manually committing at the end, which ensures that you don't have to do that every loop iteration:
conn.setautocommit(False)
for row in rows:
    ...
conn.commit()