feat: Add a flag parameter that indicates if the operation is idempotent
Use the same decision matrix on what to do in case of an operation error as in go sdk - https://github.com/ydb-platform/ydb-go-sdk/blob/e1ba79620427a66c1564a52abe7e1ff10787d442/retry/errors_data_test.go
This matrix takes into account the idempotency flag set by the user
The ready parts needed to solve this issue: TableClient.withSessionRetry takes the maxRetries parameter and closes sessions if specific errors occur and repeats an operation with new session; RETRYABLE_ERRORS_FAST is a list of errors, for which you can perform fast backoff; RETRYABLE_ERRORS_SLOW is a list of errors for which a slow backoff should be performed.
The question we need to think about is on what level to pass the flag that the operation is idempotent. To pass it in settings of operation on session level looks wrong. Since in case of some errors we need to recreate or take from the pool new session and repeat the operation