anchor.diff:  
   `AbstractSelectForUpdateBasedProxyManager<T>` - Uses to realize Select For Update concept
   
  -After need to override works of allocation transaction, in order to do that, we should override method allocateTransaction.
  +After need to override works of allocation transaction, to do that, we should override method allocateTransaction.
   The main idea of allocateTransaction to just return class which implements `LockBasedTransaction` (for `AbstractLockBasedProxyManager<T>`)
   or `SelectForUpdateBasedTransaction` (for `AbstractSelectForUpdateBasedProxyManager<T>`) - we will implement it later
   And override removeProxy() for remove bucket from the table which store buckets.
  
positive.code: 
  Need to implement `LockBasedTransaction` or `SelectForUpdateBasedTransaction` to realize custom work of database for transaction.
  
  In order to do that, we need to create a custom class to implement from one of these classes
  
  *LockBasedTransaction*
  ----
  
negative.code: === Framework to implement custom work with your database
  The Bucket4j library allows implementing work with any database.
  If you didn't find in distributed realization your database (currently Bucket4j supports the next databases: Redis, Hazelcast, Apache Ignite, Infinispan, Oracle coherence, Dynamodb, PostgreSQL, MySQL)
  you can implement your database as a distributed storage.
  All what you need to do, extends from io.github.bucket4j.distributed.proxy.generic.select_for_update.AbstractLockBasedProxyManager or
  