All stabilizer codes have fault tolerant transversal Bell basis measurement, because Bell basis measurement reveals $X_\text{left}X_\text{right} = \pm 1$ and $Z_\text{left}Z_\text{right} = \pm 1$ (by measuring them) which is very similar to how a qubit's worldline satisfies $X_\text{past}X_\text{future}=+1$ and $Z_\text{past}Z_\text{future}=+1$. Relating X and Z between two spacetime locations are core to why a code can store a qubit fault tolerantly, so the transversal Bell basis measurement is fault tolerant for the "same reason" that the code is fault tolerant. It's just that the simultaneous-X-and-Z-relationship is across space instead of across time.
For example, here is [fault tolerant transversal Bell measurement of two 5,1,3 codes][1]:
```python
import stim
circuit = stim.Circuit("""
QUBIT_COORDS(0, 0) 0
QUBIT_COORDS(0, 1) 1
QUBIT_COORDS(1, 0) 2
QUBIT_COORDS(1, 1) 3
QUBIT_COORDS(2, 0) 4
QUBIT_COORDS(2, 1) 5
QUBIT_COORDS(3, 0) 6
QUBIT_COORDS(3, 1) 7
QUBIT_COORDS(4, 0) 8
QUBIT_COORDS(4, 1) 9
# Logical bell basis values known before noise
MPP X0*X2*X4*X6*X8*X1*X3*X5*X7*X9
MPP Z0*Z2*Z4*Z6*Z8*Z1*Z3*Z5*Z7*Z9
TICK
# Stabilizers known before noise
MPP X0*Z2*Z4*X6 X1*Z3*Z5*X7
MPP X2*Z4*Z6*X8 X3*Z5*Z7*X9
MPP X4*Z6*Z8*X0 X5*Z7*Z9*X1
MPP X6*Z8*Z0*X2 X7*Z9*Z1*X3
TICK
# Noise applied.
DEPOLARIZE1(0.001) 0 1 2 3 4 5 6 7 8 9
TICK
# Noisy transversal XX measurement.
MXX(0.001) 0 1 2 3 4 5 6 7 8 9
DEPOLARIZE2(0.001) 0 1 2 3 4 5 6 7 8 9
# Compare original logical XX to logical XX recovered from physical MXXs.
OBSERVABLE_INCLUDE(0) rec[-1] rec[-2] rec[-3] rec[-4] rec[-5] rec[-15]
TICK
# Noisy transversal ZZ measurement.
MZZ(0.001) 0 1 2 3 4 5 6 7 8 9
DEPOLARIZE2(0.001) 0 1 2 3 4 5 6 7 8 9
# Compare original logical ZZ to logical ZZ recovered from physical MZZs.
OBSERVABLE_INCLUDE(1) rec[-1] rec[-2] rec[-3] rec[-4] rec[-5] rec[-19]
# Compare the original stabilizers across the spacelike measurements.
DETECTOR(0, 1, 0) rec[-3] rec[-4] rec[-7] rec[-10] rec[-17] rec[-18]
DETECTOR(1, 1, 0) rec[-2] rec[-3] rec[-6] rec[-9] rec[-15] rec[-16]
DETECTOR(2, 1, 0) rec[-1] rec[-2] rec[-8] rec[-10] rec[-13] rec[-14]
DETECTOR(3, 1, 0) rec[-1] rec[-5] rec[-7] rec[-9] rec[-11] rec[-12]
""")
```
```python
err = circuit.search_for_undetectable_logical_errors(
dont_explore_edges_with_degree_above=10,
dont_explore_edges_increasing_symptom_degree=False,
dont_explore_detection_event_sets_with_size_above=10,
canonicalize_circuit_errors=True,
)
print("Code Distance is ", len(err))
# prints 3
```
[1]: https://algassert.com/crumble#circuit=Q(0,0)0;Q(0,1)1;Q(1,0)2;Q(1,1)3;Q(2,0)4;Q(2,1)5;Q(3,0)6;Q(3,1)7;Q(4,0)8;Q(4,1)9;MPP_X0*X2*X4*X6*X8*X1*X3*X5*X7*X9;TICK;MPP_Z0*Z2*Z4*Z6*Z8*Z1*Z3*Z5*Z7*Z9;TICK;MPP_X0*Z2*Z4*X6_X1*Z3*Z5*X7;TICK;MPP_X2*Z4*Z6*X8_X3*Z5*Z7*X9;TICK;MPP_X4*Z6*Z8*X0_X5*Z7*Z9*X1;TICK;MPP_X6*Z8*Z0*X2_X7*Z9*Z1*X3;TICK;I_0_1_2_3_4_5_6_7_8_9;TICK;MXX_0_1_2_3_4_5_6_7_8_9;OI(0)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-15];TICK;MZZ_0_1_2_3_4_5_6_7_8_9;DT(0,1,0)rec[-3]_rec[-4]_rec[-7]_rec[-10]_rec[-17]_rec[-18];DT(1,1,0)rec[-2]_rec[-3]_rec[-6]_rec[-9]_rec[-15]_rec[-16];DT(2,1,0)rec[-1]_rec[-2]_rec[-8]_rec[-10]_rec[-13]_rec[-14];DT(3,1,0)rec[-1]_rec[-5]_rec[-7]_rec[-9]_rec[-11]_rec[-12];OI(1)rec[-1]_rec[-2]_rec[-3]_rec[-4]_rec[-5]_rec[-19]
[2]: https://i.sstatic.net/rlunaGkZ.png