The documentation for Database.run_in_transaction() states:
:param kw: optional keyword arguments to be passed to ``func``.
If passed, "timeout_secs" will be removed and used to
override the default timeout.
Based on the SO issue the documentation is misleading because users will assume that timeout_secs is the deadline for the request. Instead, this parameter is the retry timeout which is the deadline after which the transaction will stop being retried.
We need to update the documentation so that it's clear what this parameter is used for.