As long as both those database contexts are TransactionScope
aware, and don't explicitly have ambient transaction enlisting disabled (in the connection string, for example), then yes: that should work fine. If we assume that the two connection strings are different, this will definitely require a distributed transaction (DTC), though - whether that is OK is up to you. If the connection strings are identical, you might get away with the LTM instead (less overhead / configuration).
Note that as per the comments - you don't need the try
/finally
.